import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';

import 'package:bruno/bruno.dart';
import 'package:dio/dio.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:image/image.dart' as img;
import 'package:image_picker/image_picker.dart';

import '../../AppConfig/Config.dart';
import '../../AppConfig/LocalStorage.dart';
import '../../Authentication/AuthenticationModel/CarCardModel.dart';
import '../../http/api.dart';
import '../../l10n/messages.dart';
class AddFleetCarView extends StatefulWidget {
  const AddFleetCarView({super.key});

  @override
  State<AddFleetCarView> createState() => _AddFleetCarViewState();
}

class _AddFleetCarViewState extends State<AddFleetCarView> {

  List titleList=["车牌号","车牌颜色","车长车型","车辆类型","车辆识别代号","使用性质","注册日期","发证日期","发证机关","车辆所有人",
    "档案编号","能源类型","总质量(Kg)","整备质量","核定载重质量","年审有效期至","强制报废截止日","证芯编号","外廓车长","外廓车宽","外廓车高"];
  List dataList =["","","","","","","","","","","","","","", "","","","","","",""];
  late String ChooseIndex="";
  final ImagePicker picker = new ImagePicker();
//用户本地图片
  File? _userImage;//存放获取到的本地路径
  File? _userImage2;//存放获取到的本地路径
  File? _userImage3;//存放获取到的本地路径
  int oneCheck =0;
  String cardImgStr="";
  String cardImgStr2="";
  Map dataMap={};
  TextEditingController _nametextEditingController = TextEditingController();

  CarCardModel cardModel=CarCardModel(DriverPic: "", DriverPic2: "", CarNum: "", CarColor: "",
      LengthWeight: "", CarStyle: "", KnowNum: "", UseStyle: "", AddTime: "", OfficeTime: "",
      CardOfficeName: "", CarUser: "", MessageNum: "", OilStyle: "", AllWeight: "",
      UpWeight: "", UseWeight: "", YearEndTime: "", CarEndTime: "", CardNum: "", OutLength: "",
      OutWidth: "", OutHeight: "");

  Future<DateTime?> _showDatePickerForTheme(BuildContext context) {
    return showDatePicker(
      context: context, // 上下文
      initialDate: DateTime.now(), // 初始化选中日期
      firstDate: DateTime.now(), // 开始日期
      lastDate: DateTime(2100, 1), // 结束日期
      currentDate: DateTime.now(), // 当前日期
      initialEntryMode: DatePickerEntryMode
          .calendarOnly, // 日历弹框样式 calendar: 默认显示日历，可切换成输入模式，input:默认显示输入模式，可切换到日历，calendarOnly:只显示日历，inputOnly:只显示输入模式
      selectableDayPredicate: (dayTime) {
        // 自定义哪些日期可选
        if (dayTime == DateTime(2022, 1, 1) || dayTime == DateTime(2100, 1, 1)) {
          return false;
        }
        return true;
      },
      builder: (context, child) {
        return Theme(
          data: ThemeData(
            primarySwatch: Colors.amber,
          ),
          child: child!,
        );
      },
      helpText: "请选择日期", // 左上角提示文字
      cancelText: "取消", // 取消按钮 文案
      confirmText: "确定", // 确认按钮 文案
      initialDatePickerMode: DatePickerMode.day, // 日期选择模式 默认为天
      useRootNavigator: true, // 是否使用根导航器
      textDirection: TextDirection.ltr, // 水平方向 显示方向 默认 ltr
    );
  }
  void uploadOcrAction()  {


    if (cardImgStr!=""&&cardImgStr2!="")
      print(cardImgStr);
    print(cardImgStr2);
    dio.interceptors.add(InterceptorsWrapper(
        onRequest: (options, handler) async {
          options.headers["satoken"] = await TokenManager.getToken();
          return handler.next(options);
        }
    ));
    dio
        .post(
      MyServiceUrl.header+'api/webapp/dev/ocr/doOcr',
      data: {
        "type": "VL",
        "frontFileFormat": "JPG",
        "frontData": cardImgStr,
        "backFileFormat":"JPG",
        "backData": cardImgStr2,
      },
      options: Options(
        sendTimeout: Duration(seconds: 2),
        receiveTimeout: Duration(seconds: 5),
      ),

    )
        .then((r) {
      setState(() {
        print(r);
        Map<String, dynamic> jsonMap = json.decode(
            r.toString());
        // 获取code和data
        String code = jsonMap['code'].toString();
        if (code == "200") {
          print("code：$code");

        }else{
          BrnToast.show(
            jsonMap['msg'],
            context,
            duration: BrnDuration.short,
          );}
      });
    }).catchError((error) {
      print(error);
      ;
    });
  }

  String imageToBase64(File imageFile) {
    List<int> imageBytes = imageFile.readAsBytesSync();
    String base64String = base64Encode(Uint8List.fromList(imageBytes));

    return base64String;
  }


  void printImageMemorySize(File imageFile) {
    List<int> imageBytes = imageFile.readAsBytesSync();
    print('Original Image Memory Size: ${imageBytes.length} bytes');
  }

  Future<void> compressImage(File imageFile) async {
    List<int> imageBytes = await imageFile.readAsBytes();
    img.Image image = img.decodeImage(Uint8List.fromList(imageBytes))!;

    // Adjust the quality and size as needed
    img.Image compressedImage = img.copyResize(image, width: 1024);

    List<int> compressedBytes = img.encodeJpg(compressedImage, quality: 80);

    // Create a new File for the compressed image
    File compressedFile = File('${imageFile.path}_compressed.jpg');
    await compressedFile.writeAsBytes(compressedBytes);

    print('Compressed Image Size: ${compressedBytes.length} bytes');

    convertToBase64(compressedFile);
  }

  Future<void> convertToBase64(File imageFile) async {
    List<int> imageBytes = await imageFile.readAsBytes();
    String base64String = base64Encode(imageBytes);

    oneCheck==1?
    cardImgStr =base64String
        :cardImgStr2 =base64String;

    uploadOcrAction();

  }
  @override
  Widget build(BuildContext context) {
    var messages = AppLocalizations.of(context)!;
    return Scaffold(
      appBar: AppBar(
        title: Text("行驶证",style: TextStyle(fontWeight: FontWeight.w300,fontSize: 16.sp),),
        centerTitle: true,
        backgroundColor: Colors.white,
      ),
      body: Column(
        children: [
          Expanded(child:
          ListView(

            children: [



              Container(
                color: Colors.white,
                height: 140.h,
                child:Column(
                  // crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    SizedBox(height: 8.h,),
                    Row(
                      children: [
                        SizedBox(width: 18.w,),
                        Text("上传行驶证(必填)",style: TextStyle(color: Colors.black,fontWeight: FontWeight.w600),),

                      ],
                    ),

                    SizedBox(height: 8.h,),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.center,

                      children: [
                        GestureDetector(
                          child:
                          _userImage!=null?
                          Stack(

                            children: [

                              Container(
                                height: 90.h,
                                width: 150.w,

                                child: Image.file(_userImage!) ,
                              ),
                              Center(
                                child: Image.asset("lib/Images/Authentication/重新上传.png" ,height: 20.h,width: 50.w,),
                              ),
                            ],
                            alignment: Alignment.center,
                          )

                              :
                          Image.asset("lib/Images/Authentication/上传行驶证主页.png" ,height: 90.h,width: 150.w,),
                          onTap: () async{
                            showModalBottomSheet(context: context, builder: (BuildContext context) {
                              return Container(
                                child:
                                Stack(

                                  children: [

                                    Column(
                                      mainAxisSize: MainAxisSize.min,
                                      mainAxisAlignment:MainAxisAlignment.center,

                                      children:[

                                        SizedBox(height: 8.h,),
                                        Row(
                                          mainAxisAlignment:MainAxisAlignment.end,
                                          children: [
                                            IconButton(onPressed: (){
                                              Navigator.of(context).pop();
                                            }, icon:Icon(Icons.close)),
                                          ],
                                        ),
                                        Text(messages["示例"],style: TextStyle(color: Colors.black),),
                                        SizedBox(height: 8.h,),
                                        Image.asset('lib/Images/Authentication/行驶证主页示例图.png',width: 2270.w,height: 145.h,),


                                        SizedBox(height: 8.h,),
                                        Text(messages["请按照示例上传"],style: TextStyle(color: Color.fromRGBO(102, 102, 102, 1)),),
                                        Text(messages["模糊、遮挡会导致证件无法识别，认证不通过"],style: TextStyle(color: Color.fromRGBO(102, 102, 102, 1)),),
                                        SizedBox(height: 8.h,),
                                        Text(messages["上传照片"],style: TextStyle(color: Colors.black,fontWeight: FontWeight.w600,fontSize: 18.sp),),
                                        SizedBox(height: 18.h,),
                                        Row(
                                          children: [
                                            SizedBox(width: 38.w,),
                                            GestureDetector(
                                              child:   Column(
                                                children: [
                                                  Image.asset("lib/Images/Authentication/相册icon.png",width:35.w ,height: 35.h,),
                                                  Text(messages["相册"],style: TextStyle(color: Colors.black),),

                                                ],

                                              ),
                                              onTap: ()async{
                                                Navigator.of(context).pop();
                                                final pickedFile = await picker.pickImage(source: ImageSource.gallery);

                                                if (pickedFile != null) {

                                                  setState(() {
                                                    oneCheck=1;
                                                    _userImage = File(pickedFile.path);
                                                    printImageMemorySize(_userImage!);
                                                    print(_userImage);
                                                    compressImage(_userImage!);

                                                  });
                                                }
                                              },
                                            ),

                                            SizedBox(width: 38.w,),
                                            GestureDetector(
                                              child: Column(
                                                children: [
                                                  Image.asset("lib/Images/Authentication/拍照icon.png",width:35.w ,height: 35.h,),
                                                  Text(messages["拍照"],style: TextStyle(color: Colors.black),),

                                                ],

                                              ),
                                              onTap: ()async{
                                                Navigator.of(context).pop();
                                                final pickedFile = await picker.pickImage(source: ImageSource.camera);

                                                if (pickedFile != null) {

                                                  setState(() {
                                                    oneCheck=1;
                                                    _userImage = File(pickedFile.path);
                                                    printImageMemorySize(_userImage!);
                                                    print(_userImage);
                                                    compressImage(_userImage!);

                                                  });
                                                }
                                              },
                                            ),

                                          ],
                                        ),
                                        SizedBox(height: 20.h,),
                                      ],

                                    ),

                                  ],

                                ),
                              );


                            });

                          },
                        ),
                        SizedBox(width: 20.w,),
                        GestureDetector(
                          child:
                          _userImage2!=null?
                          Stack(

                            children: [

                              Container(
                                height: 90.h,
                                width: 150.w,

                                child: Image.file(_userImage2!) ,
                              ),
                              Center(
                                child: Image.asset("lib/Images/Authentication/重新上传.png" ,height: 20.h,width: 50.w,),
                              ),
                            ],
                            alignment: Alignment.center,
                          )

                              :
                          Image.asset("lib/Images/Authentication/上传行驶证副页.png" ,height: 90.h,width: 150.w,),
                          onTap: () async{
                            showModalBottomSheet(context: context, builder: (BuildContext context) {
                              return Container(
                                child:
                                Stack(

                                  children: [

                                    Column(
                                      mainAxisSize: MainAxisSize.min,
                                      mainAxisAlignment:MainAxisAlignment.center,

                                      children:[

                                        SizedBox(height: 8.h,),
                                        Row(
                                          mainAxisAlignment:MainAxisAlignment.end,
                                          children: [
                                            IconButton(onPressed: (){
                                              Navigator.of(context).pop();
                                            }, icon:Icon(Icons.close)),
                                          ],
                                        ),
                                        Text(messages["示例"],style: TextStyle(color: Colors.black),),
                                        SizedBox(height: 8.h,),
                                        Image.asset('lib/Images/Authentication/行驶证副页示例图.png',width: 2270.w,height: 145.h,),


                                        SizedBox(height: 8.h,),
                                        Text(messages["请按照示例上传"],style: TextStyle(color: Color.fromRGBO(102, 102, 102, 1)),),
                                        Text(messages["模糊、遮挡会导致证件无法识别，认证不通过"],style: TextStyle(color: Color.fromRGBO(102, 102, 102, 1)),),
                                        SizedBox(height: 8.h,),
                                        Text(messages["上传照片"],style: TextStyle(color: Colors.black,fontWeight: FontWeight.w600,fontSize: 18.sp),),
                                        SizedBox(height: 18.h,),
                                        Row(
                                          children: [
                                            SizedBox(width: 38.w,),
                                            GestureDetector(
                                              child:   Column(
                                                children: [
                                                  Image.asset("lib/Images/Authentication/相册icon.png",width:35.w ,height: 35.h,),
                                                  Text(messages["相册"],style: TextStyle(color: Colors.black),),

                                                ],

                                              ),
                                              onTap: ()async{
                                                Navigator.of(context).pop();
                                                final pickedFile = await picker.pickImage(source: ImageSource.gallery);

                                                if (pickedFile != null) {
                                                  setState(() {
                                                    oneCheck=2;
                                                    _userImage2 = File(pickedFile.path);
                                                    printImageMemorySize(_userImage2!);
                                                    print(_userImage2);
                                                    compressImage(_userImage2!);

                                                  });
                                                }
                                              },
                                            ),

                                            SizedBox(width: 38.w,),
                                            GestureDetector(
                                              child: Column(
                                                children: [
                                                  Image.asset("lib/Images/Authentication/拍照icon.png",width:35.w ,height: 35.h,),
                                                  Text(messages["拍照"],style: TextStyle(color: Colors.black),),

                                                ],

                                              ),
                                              onTap: ()async{
                                                Navigator.of(context).pop();
                                                final pickedFile = await picker.pickImage(source: ImageSource.camera);

                                                if (pickedFile != null) {
                                                  setState(() {
                                                    oneCheck=2;
                                                    _userImage2 = File(pickedFile.path);
                                                    printImageMemorySize(_userImage2!);
                                                    print(_userImage2);
                                                    compressImage(_userImage2!);

                                                  });
                                                }
                                              },
                                            ),

                                          ],
                                        ),
                                        SizedBox(height: 20.h,),
                                      ],

                                    ),

                                  ],

                                ),
                              );


                            });

                          },
                        ),


                      ],
                    ),




                  ],
                ) ,
              ),
              SizedBox(height: 8.h,),
              Container(
                color: Colors.white,
                height: 88.h,
                padding: EdgeInsets.only(top: 8.h),
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: [
                    SizedBox(width: 2.w,),
                    Column(

                      children: [
                        SizedBox(height: 10.h,),
                        Row(

                          children: [
                            Image.asset("lib/Images/Authentication/橙色感叹号warning.png",width: 20.w,height: 20.h,),
                            SizedBox(width:4.w,),
                            Text("上传副页背面",style: TextStyle(color: Color.fromRGBO(231, 112, 27, 0.85)),),
                            SizedBox(width:64.w,),
                          ],
                        ),
                        Text("检测到您的年审有效期已过期，\n请上传行驶证副页背面",style: TextStyle(color: Color.fromRGBO(231, 112, 27, 0.85),fontSize: 12.sp),),


                      ],
                    ),
                    GestureDetector(
                      child:
                      _userImage3!=null?
                      Stack(

                        children: [

                          Container(
                            height: 65.h,
                            width: 102.w,

                            child: Image.file(_userImage3!) ,
                          ),
                          Center(
                            child: Image.asset("lib/Images/Authentication/重新上传.png" ,height: 20.h,width: 50.w,),
                          ),
                        ],
                        alignment: Alignment.center,
                      )

                          :
                      Image.asset("lib/Images/Authentication/上传行驶证副页的背面.png" ,height: 65.h,width: 102.w,),
                      onTap: () async{
                        showModalBottomSheet(context: context, builder: (BuildContext context) {
                          return Container(
                            child:
                            Stack(

                              children: [

                                Column(
                                  mainAxisSize: MainAxisSize.min,
                                  mainAxisAlignment:MainAxisAlignment.center,

                                  children:[

                                    SizedBox(height: 8.h,),
                                    Row(
                                      mainAxisAlignment:MainAxisAlignment.end,
                                      children: [
                                        IconButton(onPressed: (){
                                          Navigator.of(context).pop();
                                        }, icon:Icon(Icons.close)),
                                      ],
                                    ),
                                    Text(messages["示例"],style: TextStyle(color: Colors.black),),
                                    SizedBox(height: 8.h,),
                                    Image.asset('lib/Images/Authentication/行驶证副页示例图.png',width: 2270.w,height: 145.h,),


                                    SizedBox(height: 8.h,),
                                    Text(messages["请按照示例上传"],style: TextStyle(color: Color.fromRGBO(102, 102, 102, 1)),),
                                    Text(messages["模糊、遮挡会导致证件无法识别，认证不通过"],style: TextStyle(color: Color.fromRGBO(102, 102, 102, 1)),),
                                    SizedBox(height: 8.h,),
                                    Text(messages["上传照片"],style: TextStyle(color: Colors.black,fontWeight: FontWeight.w600,fontSize: 18.sp),),
                                    SizedBox(height: 18.h,),
                                    Row(
                                      children: [
                                        SizedBox(width: 38.w,),
                                        GestureDetector(
                                          child:   Column(
                                            children: [
                                              Image.asset("lib/Images/Authentication/相册icon.png",width:35.w ,height: 35.h,),
                                              Text(messages["相册"],style: TextStyle(color: Colors.black),),

                                            ],

                                          ),
                                          onTap: ()async{
                                            Navigator.of(context).pop();
                                            final pickerImages = await picker.pickImage(source: ImageSource.gallery);
                                            if(mounted){
                                              setState(() {
                                                oneCheck=1;
                                                if(pickerImages != null){
                                                  _userImage3 = File(pickerImages.path);
                                                  print('你选择的本地路径是：${_userImage3.toString()}');

                                                }else{
                                                  print('没有照片可以选择');
                                                }
                                              });
                                            };
                                          },
                                        ),

                                        SizedBox(width: 38.w,),
                                        GestureDetector(
                                          child: Column(
                                            children: [
                                              Image.asset("lib/Images/Authentication/拍照icon.png",width:35.w ,height: 35.h,),
                                              Text(messages["拍照"],style: TextStyle(color: Colors.black),),

                                            ],

                                          ),
                                          onTap: ()async{
                                            Navigator.of(context).pop();
                                            final pickerImages = await picker.pickImage(source: ImageSource.camera);
                                            if(mounted){
                                              setState(() {
                                                oneCheck=1;
                                                if(pickerImages != null){
                                                  _userImage3 = File(pickerImages.path);
                                                  print('你选择的本地路径是：${_userImage3.toString()}');

                                                }else{
                                                  print('没有照片可以选择');
                                                }
                                              });
                                            };
                                          },
                                        ),

                                      ],
                                    ),
                                    SizedBox(height: 20.h,),
                                  ],

                                ),

                              ],

                            ),
                          );


                        });

                      },
                    ),

                    SizedBox(width: 2.w,),
                  ],
                ),
              ),
              SizedBox(height: 8.h,),
              Container(
                margin: EdgeInsets.only(left: 8.w,right: 8.w),
                height: 1020.h,
                child:  ListView.separated(
                    physics: NeverScrollableScrollPhysics(),
                    itemCount:21,
                    separatorBuilder: (BuildContext context, int index) {
                      return Container(  // 这里使用 Divider 作为分隔符
                        color: Color.fromRGBO(248, 248, 248, 1),
                        height: 8.h,  // 分隔符的高度
                      );
                    },
                    itemBuilder:(context, index) {
                      return Padding(padding:

                      EdgeInsets.only(left: 8.w,right: 8.w),
                        child:  Container(height: 40.h,
                          decoration: BoxDecoration(
                              color: Colors.white,
                              borderRadius: BorderRadius.all(Radius.circular(10))),
                          child: Row(
                            mainAxisAlignment: MainAxisAlignment.spaceBetween,
                            children: [
                              Row(
                                children: [
                                  SizedBox(width: 8.h,),
                                  Text(titleList[index],style: TextStyle(color: Colors.black),),
                                ],
                              ),
                              GestureDetector(
                                  child:  Row(
                                    children: [

                                      Text(dataList[index],style: TextStyle(color:Colors.black),),
                                      Icon(Icons.arrow_forward_ios,color: MyColors.authTipColor,),
                                    ],
                                  ),
                                  onTap: () async{
                                    if (index == 6) {
                                      DateTime? _dateTime =
                                      await _showDatePickerForTheme(context);
                                      if (_dateTime == null) {
                                        print("取消选择");
                                      } else {
                                        String time =_dateTime.toString();
                                        cardModel.AddTime =time.substring(0,10);
                                        print("选择"+ cardModel.AddTime);
                                        dataList[index]=time.substring(0,10);
                                        setState(() {

                                          _nametextEditingController
                                              .text =
                                              cardModel.AddTime;
                                        });

                                      }

                                    } else if (index == 7) {
                                      DateTime? _dateTime =
                                      await _showDatePickerForTheme(context);
                                      if (_dateTime == null) {
                                        print("取消选择");
                                      } else {
                                        String time =_dateTime.toString();
                                        cardModel.OfficeTime =time.substring(0,10);
                                        dataList[index]=time.substring(0,10);
                                        print("选择"+ cardModel.OfficeTime);
                                        setState(() {
                                          _nametextEditingController
                                              .text =
                                              cardModel.OfficeTime;
                                        });


                                      };
                                    } else if (index == 15) {
                                      DateTime? _dateTime =
                                      await _showDatePickerForTheme(context);
                                      if (_dateTime == null) {
                                        print("取消选择");
                                      } else {
                                        String time =_dateTime.toString();
                                        cardModel.YearEndTime =time.substring(0,10);
                                        dataList[index]=time.substring(0,10);
                                        print("选择"+ cardModel.YearEndTime);
                                        setState(() {
                                          _nametextEditingController
                                              .text =
                                              cardModel.YearEndTime;
                                        });


                                      };
                                    } else if (index == 16) {
                                      DateTime? _dateTime =
                                      await _showDatePickerForTheme(context);
                                      if (_dateTime == null) {
                                        print("取消选择");
                                      } else {
                                        String time =_dateTime.toString();
                                        cardModel.CarEndTime =time.substring(0,10);
                                        dataList[index]=time.substring(0,10);
                                        print("选择"+ cardModel.CarEndTime);
                                        setState(() {
                                          _nametextEditingController
                                              .text =
                                              cardModel.CarEndTime;
                                        });


                                      };

                                    } else {
                                      _nametextEditingController.text =
                                      dataList[index];
                                      showModalBottomSheet(
                                          isDismissible: false,
                                          context: context,

                                          builder: (BuildContext context) {
                                            return Container(

                                              color: Color.fromRGBO(
                                                  255, 255, 255, 1),
                                              child: Column(

                                                children: [

                                                  SizedBox(height: 8.h,),
                                                  Row(
                                                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                                                    children: [
                                                      TextButton(onPressed: () {
                                                        Navigator.of(context)
                                                            .pop();
                                                        setState(() {
                                                          if (index == 0) {
                                                            cardModel.CarNum = dataList[index];
                                                          } else
                                                          if (index == 1) {
                                                            cardModel
                                                                .CarColor = dataList[index];
                                                          } else
                                                          if (index == 2) {
                                                            cardModel.LengthWeight = dataList[index];
                                                          } else
                                                          if (index == 3) {
                                                            cardModel
                                                                .CarStyle = dataList[index];
                                                          } else
                                                          if (index == 4) {
                                                            cardModel.KnowNum = dataList[index];
                                                          } else
                                                          if (index == 5) {
                                                            cardModel
                                                                .UseStyle = dataList[index];
                                                          } else
                                                          if (index == 6) {
                                                            cardModel.AddTime = dataList[index];
                                                          } else
                                                          if (index == 7) {
                                                            cardModel.OfficeTime = dataList[index];

                                                          } else
                                                          if (index == 8) {
                                                            cardModel.CardOfficeName = dataList[index];
                                                          }
                                                          else
                                                          if (index == 9) {
                                                            cardModel.CarUser = dataList[index];
                                                          }
                                                          else
                                                          if (index == 10) {
                                                            cardModel.MessageNum = dataList[index];
                                                          }else
                                                          if (index == 11) {
                                                            cardModel.OilStyle = dataList[index];
                                                          }else
                                                          if (index == 12) {
                                                            cardModel.AllWeight = dataList[index];
                                                          }else
                                                          if (index == 13) {
                                                            cardModel.UpWeight = dataList[index];
                                                          }else
                                                          if (index == 14) {
                                                            cardModel.UseWeight = dataList[index];
                                                          }else
                                                          if (index == 17) {
                                                            cardModel.CardNum = dataList[index];
                                                          }else
                                                          if (index == 18) {
                                                            cardModel.OutLength = dataList[index];
                                                          }else
                                                          if (index == 19) {
                                                            cardModel.OutWidth = dataList[index];
                                                          }else
                                                          if (index == 20) {
                                                            cardModel.OutHeight = dataList[index];
                                                          }
                                                          _nametextEditingController.text = dataList[index];
                                                        });
                                                      },
                                                          child: Text(
                                                            messages["取消"],
                                                            style: TextStyle(
                                                                color: Colors.black),)),
                                                      Text(titleList[index] + "输入",
                                                        style: TextStyle(color: Colors.black, fontSize: 16.sp, fontWeight: FontWeight.w600),),
                                                      TextButton(onPressed: () {
                                                        Navigator.of(context).pop();

                                                        setState(() {
                                                          if (index == 0) {
                                                            dataList[index] = cardModel.CarNum;
                                                          } else
                                                          if (index == 1) {
                                                            dataList[index] = cardModel.CarColor;
                                                          } else
                                                          if (index == 2) {
                                                            dataList[index] = cardModel.LengthWeight;
                                                          } else
                                                          if (index == 3) {
                                                            dataList[index] = cardModel.CarStyle;
                                                          } else
                                                          if (index == 4) {
                                                            dataList[index] = cardModel.KnowNum;
                                                          } else
                                                          if (index == 5) {
                                                            dataList[index] = cardModel.UseStyle;
                                                          } else
                                                          if (index == 6) {
                                                            dataList[index] = cardModel.AddTime;
                                                          }
                                                          else
                                                          if (index == 7) {
                                                            dataList[index] = cardModel.OfficeTime;
                                                          }else
                                                          if (index == 8) {
                                                            dataList[index] = cardModel.CardOfficeName;
                                                          }else
                                                          if (index == 9) {
                                                            dataList[index] = cardModel.CarUser;
                                                          }else
                                                          if (index == 10) {
                                                            dataList[index] = cardModel.MessageNum;
                                                          }else
                                                          if (index ==11) {
                                                            dataList[index] = cardModel.OilStyle;
                                                          }else
                                                          if (index == 12) {
                                                            dataList[index] = cardModel.AllWeight;
                                                          }else
                                                          if (index == 13) {
                                                            dataList[index] = cardModel.UpWeight;
                                                          }else
                                                          if (index == 14) {
                                                            dataList[index] = cardModel.UseWeight;
                                                          }else
                                                          if (index == 15) {
                                                            dataList[index] = cardModel.YearEndTime;
                                                          }else
                                                          if (index == 16) {
                                                            dataList[index] = cardModel.CarEndTime;
                                                          }else
                                                          if (index == 17) {
                                                            dataList[index] = cardModel.CardNum;
                                                          }else
                                                          if (index == 18) {
                                                            dataList[index] = cardModel.OutLength;
                                                          }else
                                                          if (index == 19) {
                                                            dataList[index] = cardModel.OutWidth;
                                                          }else
                                                          if (index == 20) {
                                                            dataList[index] = cardModel.OutHeight;
                                                          }
                                                          _nametextEditingController.text = dataList[index];
                                                        });
                                                      },
                                                        child: Text(
                                                          messages["确定"],
                                                          style: TextStyle(color: Color.fromRGBO(231, 112, 27, 0.85)),),),
                                                    ],
                                                  ),
                                                  SizedBox(height: 8.h,),
                                                  Container(

                                                    margin: EdgeInsets.only(
                                                        left: 18.w,
                                                        right: 18.w),
                                                    decoration: BoxDecoration(
                                                      borderRadius: BorderRadius.circular(30.0),

                                                    ),
                                                    child: TextField(

                                                        controller: _nametextEditingController,

                                                        style: TextStyle(color: Colors.black,),
                                                        decoration: InputDecoration(
                                                          filled: true,
                                                          fillColor: Color.fromRGBO(249, 249, 249, 1),
                                                          border: InputBorder.none,

                                                        ),
                                                        onChanged: (text) {
                                                          setState(() {
                                                            if (index == 0) {
                                                              cardModel.CarNum = text;
                                                              print(cardModel.CarNum);
                                                            } else
                                                            if (index == 1) {
                                                              cardModel.CarColor = text;
                                                            } else
                                                            if (index == 2) {
                                                              cardModel.LengthWeight = text;
                                                            } else
                                                            if (index == 3) {
                                                              cardModel.CarStyle = text;
                                                            } else
                                                            if (index == 4) {
                                                              cardModel.KnowNum = text;
                                                            } else
                                                            if (index == 5) {
                                                              cardModel.UseStyle = text;
                                                            } else
                                                            if (index == 6) {
                                                              cardModel.AddTime = text;
                                                            }else
                                                            if (index == 7) {
                                                              cardModel.OfficeTime = text;
                                                            }else
                                                            if (index == 8) {
                                                              cardModel.CardOfficeName = text;
                                                            }else
                                                            if (index == 9) {
                                                              cardModel.CarUser = text;
                                                            }else
                                                            if (index == 10) {
                                                              cardModel.MessageNum = text;
                                                            }else
                                                            if (index == 11) {
                                                              cardModel.OilStyle = text;
                                                            }else
                                                            if (index == 12) {
                                                              cardModel.AllWeight = text;
                                                            }else
                                                            if (index == 13) {
                                                              cardModel.UpWeight = text;
                                                            }else
                                                            if (index == 14) {
                                                              cardModel.UseWeight = text;
                                                            }else
                                                            if (index == 15) {
                                                              cardModel.YearEndTime = text;
                                                            }else
                                                            if (index == 16) {
                                                              cardModel.CarEndTime = text;

                                                            }else
                                                            if (index == 17) {
                                                              cardModel.CardNum = text;
                                                            }else
                                                            if (index == 18) {
                                                              cardModel.OutLength = text;
                                                            }else
                                                            if (index == 19) {
                                                              cardModel.OutWidth = text;
                                                            }else
                                                            if (index == 20) {
                                                              cardModel.OutHeight = text;
                                                            }
                                                          });
                                                        }
                                                    ),
                                                  ),

                                                ],
                                              ),
                                            );
                                          });
                                    }
                                  }
                              ),

                            ],
                          ),
                        ),
                      );
                    }
                ),
              ),


            ],
          ),

          ),
          Container(
            height: 80.h,
            color: Colors.white,
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                Container(
                    height: 40.h ,
                    margin: EdgeInsets.only(left: 30.w,right: 30.w),
                    decoration: BoxDecoration(
                        color:Color.fromRGBO(223, 223, 223, 1),
                        borderRadius: BorderRadius.all(Radius.circular(30))),

                    width: double.infinity,


                    child: TextButton(
                      child: Text("提交审核",style: TextStyle(color: Colors.white,fontSize: 14.sp),),

                      onPressed: (){
                        print(cardModel.CarNum);
                        dio.interceptors.add(InterceptorsWrapper(
                            onRequest: (options, handler) async {
                              options.headers["satoken"] = await TokenManager.getToken();
                              return handler.next(options);
                            }
                        ));
                        dio
                            .post(
                          MyServiceUrl.header+'api/user/driver/captain/addCaptainVehicle',
                          data: {
                            "vehicleId": "",
                            "captainId": "",
                            "captainDrvUserId": "",
                            "vehicleNum": "",
                            "vehicleNumColor": "",
                            "vehicleLength": "",
                            "vehicleType": "",
                            "vehicleTonnage": 0,
                            "vehicleGrossMass": 0,
                            "vehicleDrivingLicenseInfo": {
                              "vin": "",
                              "owner": "",
                              "fileNum": "",
                              "backPath": "",
                              "frontPath": "",
                              "grossMass": "",
                              "issueDate": "",
                              "scrapDate": "",
                              "expiryDate": "",
                              "vehicleNum": "",
                              "vehicleType": "",
                              "registerDate": "",
                              "useCharacter": "",
                              "vehicleHigh": "",
                              "vehicleWide": "",
                              "vehicleLength": "",
                              "vehicleTonnage": "",
                              "vehicleEnergyType": "",
                              "certificateCoreNum": "",
                              "issuingOrganizations": ""
                            }
                          },
                          options: Options(
                            sendTimeout: Duration(seconds: 2),
                            receiveTimeout: Duration(seconds: 5),
                          ),

                        )
                            .then((r) {
                          setState(() {
                            print(r);
                            Map<String, dynamic> jsonMap = json.decode(
                                r.toString());
                            // 获取code和data
                            String code = jsonMap['code'].toString();
                            if (code == "200") {
                              print("code：$code");
                              BrnToast.show(
                                "提交成功",
                                context,
                                duration: BrnDuration.short,
                              );

                              Navigator.pop(context);
                            }
                          });
                        }).catchError((error) {
                          print(error);
                          ;
                        });
                      },
                    )
                ),
              ],
            ),
          ),



          // }),

        ],
      ),



    );
  }
}
